//////////BSSCDHTML Section 1//////////
// RoboHELP® Dynamic HTML Effects Script
// Copyright © 1998-2000 eHelp Corporation.  All rights reserved.

// Version=3.72

// Warning:  Do not modify this file.  It is generated by RoboHELP® and changes will be overwritten.

//{{HH_SYMBOL_SECTION
var HH_ChmFilename = "";
var HH_WindowName = "";
var HH_GlossaryFont = "";
var HH_Glossary = "";
var HH_Avenue = "";
var HH_ActiveX = false;
//}}HH_SYMBOL_SECTION

var gbNav4 = false;
var gbIE4 = false;
var gbIE = false;
var gbIE5 = false;
var gbIE55 = false;
var gAgent = navigator.userAgent.toLowerCase(); 
var gbMac = (gAgent.indexOf("mac") != -1);
var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));

var error_count = 0;

gbIE = (navigator.appName.indexOf("Microsoft") != -1);
if (parseInt(navigator.appVersion) >= 4) {
	gbNav4 = (navigator.appName == "Netscape");
	gbIE4 = (navigator.appName.indexOf("Microsoft") != -1);

	if (gbIE4) {
		if (gAgent.indexOf("msie 5.0") != -1) {
			gbIE5 = true;
		}
		if (gAgent.indexOf("msie 5.5") != -1) { // curently IE 5.5 has some buggy stuff. we need do some remedy to our code.
			gbIE55 = true;
		}
	}
}

function HHActivateComponents()
{
	if (HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0])))
	{
		var objBody = document.all.tags("BODY")[0];
		if( typeof(objBody) == "object" )
		{
			objBody.insertAdjacentHTML("beforeEnd", '<OBJECT ID="HHComponentActivator" CLASSID="CLSID:399CB6C4-7312-11D2-B4D9-00105A0422DF" width=0 height=0></OBJECT>');
			if (HHComponentActivator.object)
			{
				HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue);
			}
		}
	}
}

var gAmc = new Array();
var BSSCSequenceIndex = 0;

function animationContext(el, progressAnimation, finishAnimiation, animationDuration, animationPeriod)
{
	this.el = el;
	this.progressAnimation = progressAnimation;
	this.finishAnimiation = finishAnimiation;
	this.animationDuration = parseFloat(animationDuration);
	this.animationPeriod = animationPeriod;
	this.animationStartTime = (new Date()).getTime();
	this.continueAnimation = true;
}

function progressFade(ndx)
{
	if( typeof( gAmc[ndx].el.filters.alpha ) != "object" )
		return;
	
	percent = ((new Date()).getTime() - gAmc[ndx].animationStartTime)/gAmc[ndx].animationDuration;
	if (percent > 1.0){
		percent = 1.0;
		gAmc[ndx].continueAnimation = false;
	}
	gAmc[ndx].el.filters.alpha.opacity = gAmc[ndx].initialOpacity*(1.0-percent) +  gAmc[ndx].finalOpacity*percent;
	
}

function finishFade(ndx)
{
	if( typeof( gAmc[ndx].el.filters.alpha ) == "object" )
		gAmc[ndx].el.filters.alpha.opacity = parseInt(gAmc[ndx].finalOpacity);
}

function progressTranslation(ndx)
{
	percent = ((new Date()).getTime() - gAmc[ndx].animationStartTime)/gAmc[ndx].animationDuration;
	if (percent > 1.0)	{
		percent = 1.0;
		gAmc[ndx].continueAnimation = false;
	}
	gAmc[ndx].el.style.pixelLeft = gAmc[ndx].startX*(1.0-percent) +  gAmc[ndx].finalX*percent;
	gAmc[ndx].el.style.pixelTop = gAmc[ndx].startY*(1.0-percent) +  gAmc[ndx].finalY*percent;
}
function progressSpiral(ndx)
{
	percent = ((new Date()).getTime() - gAmc[ndx].animationStartTime)/gAmc[ndx].animationDuration;
	if (percent > 1.0)	{
		percent = 1.0;
		gAmc[ndx].continueAnimation = false;
	}
	rf = 1.0 - percent
	t = percent * 2.0*Math.PI
	rx = Math.max(Math.abs(gAmc[ndx].el.initLeft), 200)
	ry = Math.max(Math.abs(gAmc[ndx].el.initTop),  200)
	gAmc[ndx].el.style.pixelLeft = Math.ceil(-rf*Math.cos(t)*rx)
	gAmc[ndx].el.style.pixelTop  = Math.ceil(-rf*Math.sin(t)*ry)
	gAmc[ndx].el.style.visibility="visible"	
}

function progressElasticFromRight(ndx)
{
	percent = ((new Date()).getTime() - gAmc[ndx].animationStartTime)/gAmc[ndx].animationDuration;
	if (percent > 1.0)	{
		percent = 1.0;
		gAmc[ndx].continueAnimation = false;
	}
	rf=Math.exp(-percent*7)
	t = percent * 1.5*Math.PI
	rx =Math.abs(gAmc[ndx].el.initLeft)
	gAmc[ndx].el.style.pixelLeft = rf*Math.cos(t)*rx
	gAmc[ndx].el.style.pixelTop = 0
	gAmc[ndx].el.style.visibility="visible"	
}
function progressElasticFromBottom(ndx)
{
	percent = ((new Date()).getTime() - gAmc[ndx].animationStartTime)/gAmc[ndx].animationDuration;
	if (percent > 1.0)	{
		percent = 1.0;
		gAmc[ndx].continueAnimation = false;
	}
	rf=Math.exp(-percent*7)
	t = percent * 1.5*Math.PI
	rx =Math.abs(gAmc[ndx].el.initTop)
	gAmc[ndx].el.style.pixelLeft = 0
	gAmc[ndx].el.style.pixelTop = rf*Math.cos(t)*rx
	gAmc[ndx].el.style.visibility="visible"	
}

function progressZoomIn(ndx)
{
	percent = ((new Date()).getTime() - gAmc[ndx].animationStartTime)/gAmc[ndx].animationDuration;
	if (percent > 1.0)	{
		percent = 1;
		gAmc[ndx].continueAnimation = false;
	}
	for (var index=0; index<gAmc[ndx].el.all.length; index++) {
		gAmc[ndx].el.all[index].style.fontSize = Math.ceil(50+50*percent) + "%"
	}
	gAmc[ndx].el.posLeft = 100
	gAmc[ndx].el.style.visibility="visible"

	if (percent >= 1.0)	{
		finishZoom(ndx);
	}
}

function progressZoomOut(ndx)
{
	percent = ((new Date()).getTime() - gAmc[ndx].animationStartTime)/gAmc[ndx].animationDuration;
	if (percent > 1.0)	{
		percent = 1.0;
		gAmc[ndx].continueAnimation = false;
	}

	for (var index=0; index<gAmc[ndx].el.all.length; index++)
		gAmc[ndx].el.all[index].style.fontSize = Math.ceil(100+200*(1-percent)) + "%"
	gAmc[ndx].el.posLeft = 0
	gAmc[ndx].el.style.visibility="visible"

	if (percent >= 1.0)	{
		finishZoom(ndx);
	}
}
function finishTranslation(ndx)
{
	gAmc[ndx].el.style.pixelLeft = parseInt(gAmc[ndx].finalX);
	gAmc[ndx].el.style.pixelTop = parseInt(gAmc[ndx].finalY);
}
function finishZoom(ndx)
{
	for (i=0; i<gAmc[ndx].el.all.length; i++)
		gAmc[ndx].el.all[i].style.fontSize = gAmc[ndx].OldFont

} 

function animationPump(ndx)
{
	gAmc[ndx].progressAnimation(ndx);
	if (gAmc[ndx].continueAnimation)
		gAmc[ndx].tm = setTimeout("animationPump(" + ndx + ");", gAmc[ndx].animationPeriod);
}

function clearAnimations()
{
	for (var index=0; index<gAmc.length; index++) {
		gAmc[index].finishAnimiation(index);
		clearTimeout(gAmc[index].tm);
	}
	gAmc = new Array();
}

function startNextAnimationSet()
{
	clearAnimations();
	bStarted = false;
	bFound = false

	// Determine the next sequence number
	divElements = document.all.tags("DIV");
	for (var index = 0; index < divElements.length; index++) 
	{
		el = divElements[index];
		objectOrder = el.getAttribute("BSSCObjectOrder", false);
		if(null != objectOrder)
		{
			objectOrder = parseInt(objectOrder);
			if (objectOrder > BSSCSequenceIndex && (!bFound || objectOrder < minBSSCSequenceIndexFound))
			{
				minBSSCSequenceIndexFound = objectOrder;
				bFound = true;
			}
		}
	}

	if (bFound)
	{
		BSSCSequenceIndex = minBSSCSequenceIndexFound;
		bStarted = startAnimationSet(BSSCSequenceIndex);
	}
}

function getOffsetFromTopOfBrowser(el)
{
	if (null == el.offsetParent)
		return el.offsetTop;
	else
		return el.offsetTop + getOffsetFromTopOfBrowser(el.offsetParent);
}

function startAnimationSet(ndx)
{
	var m = 0;
	bStarted = false;

	// Find document elements with "BSSCAnimationType" attribute
	divElements = document.all.tags("DIV");
	for (var index = 0; index < divElements.length; index++)
	{
		el = divElements[index];
		
		animationType = el.getAttribute("BSSCAnimationType", false);
		if(null != animationType)
		{
			framePeriod = el.getAttribute("BSSCFramePeriod", false);
			frameCount = el.getAttribute("BSSCFrameCount", false);
			sequenceIndex = el.getAttribute("BSSCObjectOrder", false);

			// Stop any currently running RevealTrans filters
			if ("RevealTrans" == animationType && parseInt(sequenceIndex) == ndx-1 && gbWindows)
				el.filters.RevealTrans.stop();  
			// Filter on ndx
			if (0 == ndx && null == sequenceIndex ||
				ndx == parseInt(sequenceIndex))
			{
				if ("FlyInFromRight" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = document.body.clientWidth + document.body.scrollLeft;
					gAmc[m].startY = 0;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyOutToRight" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = 0;
					gAmc[m].startY = 0;
					gAmc[m].finalX = document.body.clientWidth + document.body.scrollWidth;
					gAmc[m].finalY = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyInFromLeft" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					for (childIndex=0; childIndex<el.children.length; childIndex++)
					{
						if ("left" == el.children[childIndex].style.textAlign)
							el.children[childIndex].style.textAlign = "right";
					}
					pixelsToTranslate = document.body.clientWidth;
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = -(document.body.clientWidth + document.body.scrollLeft);
					gAmc[m].startY = 0;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyOutToLeft" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					for (childIndex=0; childIndex<el.children.length; childIndex++)
					{
						if ("left" == el.children[childIndex].style.textAlign)
							el.children[childIndex].style.textAlign = "right";
					}
					pixelsToTranslate = document.body.clientWidth;
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = 0;
					gAmc[m].startY = 0;
					gAmc[m].finalX = -(document.body.clientWidth + document.body.scrollWidth);
					gAmc[m].finalY = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyInFromBottom" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = 0;
					gAmc[m].startY = document.body.clientHeight + document.body.scrollTop;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyOutToBottom" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = 0;
					gAmc[m].startY = 0;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = document.body.clientHeight + document.body.scrollHeight;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyInFromTop" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = 0;
					gAmc[m].startY = -getOffsetFromTopOfBrowser(el) - el.offsetHeight;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyOutToTop" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = 0;
					gAmc[m].startY = 0;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = -getOffsetFromTopOfBrowser(el) - el.offsetHeight;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyInFromBottomRight" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					pixelsToTranslate = document.body.clientWidth + document.body.scrollLeft;
					if (document.body.clientHeight + document.body.scrollTop - el.offsetTop < pixelsToTranslate)
						pixelsToTranslate = document.body.clientHeight + document.body.scrollTop - el.offsetTop;
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = pixelsToTranslate;
					gAmc[m].startY = pixelsToTranslate;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyOutToBottomRight" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					pixelsToTranslate = document.body.clientWidth + document.body.scrollLeft;
					if (document.body.clientHeight + document.body.scrollTop - el.offsetTop < pixelsToTranslate)
						pixelsToTranslate = document.body.clientHeight +document.body.scrollTop - el.offsetTop;
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = 0;
					gAmc[m].startY = 0;
					gAmc[m].finalX = pixelsToTranslate;
					gAmc[m].finalY = pixelsToTranslate;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyInFromTopRight" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					pixelsToTranslate = document.body.clientWidth;
					offsetFromTopOfBrowser = getOffsetFromTopOfBrowser(el);
					if (offsetFromTopOfBrowser + el.offsetHeight < pixelsToTranslate)
						pixelsToTranslate = offsetFromTopOfBrowser + el.offsetHeight;
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = pixelsToTranslate;
					gAmc[m].startY = -pixelsToTranslate;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyOutToTopRight" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					pixelsToTranslate = document.body.clientWidth;
					offsetFromTopOfBrowser = getOffsetFromTopOfBrowser(el);
					if (offsetFromTopOfBrowser + el.offsetHeight < pixelsToTranslate)
						pixelsToTranslate = offsetFromTopOfBrowser + el.offsetHeight;
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = 0;
					gAmc[m].startY = 0;
					gAmc[m].finalX = pixelsToTranslate;
					gAmc[m].finalY = -pixelsToTranslate;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyInFromTopLeft" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					for (childIndex=0; childIndex<el.children.length; childIndex++)
					{
						if ("left" == el.children[childIndex].style.textAlign)
							el.children[childIndex].style.textAlign = "right";
					}
					pixelsToTranslate = document.body.clientWidth + document.body.scrollLeft;
					offsetFromTopOfBrowser = getOffsetFromTopOfBrowser(el);
					if (offsetFromTopOfBrowser + el.offsetHeight < pixelsToTranslate)
						pixelsToTranslate = offsetFromTopOfBrowser + el.offsetHeight;
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = -pixelsToTranslate;
					gAmc[m].startY = -pixelsToTranslate;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyOutToTopLeft" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					for (childIndex=0; childIndex<el.children.length; childIndex++)
					{
						if ("left" == el.children[childIndex].style.textAlign)
							el.children[childIndex].style.textAlign = "right";
					}
					pixelsToTranslate = document.body.clientWidth + document.body.scrollLeft;
					offsetFromTopOfBrowser = getOffsetFromTopOfBrowser(el);
					if (offsetFromTopOfBrowser + el.offsetHeight < pixelsToTranslate)
						pixelsToTranslate = offsetFromTopOfBrowser + el.offsetHeight;
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = 0;
					gAmc[m].startY = 0;
					gAmc[m].finalX = -pixelsToTranslate;
					gAmc[m].finalY = -pixelsToTranslate;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyInFromBottomLeft" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					for (childIndex=0; childIndex<el.children.length; childIndex++)
					{
						if ("left" == el.children[childIndex].style.textAlign)
							el.children[childIndex].style.textAlign = "right";
					}
					pixelsToTranslate = document.body.clientWidth + document.body.scrollLeft;
					if (document.body.clientHeight + document.body.scrollTop - el.offsetTop < pixelsToTranslate)
						pixelsToTranslate = document.body.clientHeight + document.body.scrollTop - el.offsetTop;
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = -pixelsToTranslate;
					gAmc[m].startY = pixelsToTranslate;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("FlyOutToBottomLeft" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					for (childIndex=0; childIndex<el.children.length; childIndex++)
					{
						if ("left" == el.children[childIndex].style.textAlign)
							el.children[childIndex].style.textAlign = "right";
					}
					pixelsToTranslate = document.body.clientWidth + document.body.scrollLeft;
					if (document.body.clientHeight + document.body.scrollTop - el.offsetTop < pixelsToTranslate)
						pixelsToTranslate = document.body.clientHeight +document.body.scrollTop - el.offsetTop;
					gAmc[m] = new animationContext(el, progressTranslation, finishTranslation, animationDuration, 10);
					gAmc[m].startX = 0;
					gAmc[m].startY = 0;
					gAmc[m].finalX = -pixelsToTranslate;
					gAmc[m].finalY = pixelsToTranslate;
					animationPump(m++);
					bStarted = true;
				}
				if ("FadeIn" == animationType)
				{
					if (gbWindows)
					{
						animationDuration = el.getAttribute("BSSCDuration", false);
						if (null == animationDuration)
							animationDuration = 1000; // default to 1s
						finalOpacity = el.getAttribute("BSSCFinalOpacity", false);
						if (null == finalOpacity)
							finalOpacity = 100;
						initialOpacity = el.getAttribute("BSSCInitialOpacity", false);
						if (null == initialOpacity)
							initialOpacity = 0;
						gAmc[m] = new animationContext(el, progressFade, finishFade, animationDuration, 50);
						el.filters.opacity = initialOpacity;
						gAmc[m].initialOpacity = initialOpacity;
						gAmc[m].finalOpacity = finalOpacity;
						animationPump(m++);
						bStarted = true;
					} else {
						el.style.visibility = "";
					}
				}
				if ("Spiral" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s

					gAmc[m] = new animationContext(el, progressSpiral, finishTranslation, animationDuration, 10);
					gAmc[m].el.initLeft = el.offsetLeft+document.body.clientWidth;
					gAmc[m].el.initTop = document.body.scrollTop+el.offsetTop+document.body.clientHeight;
					gAmc[m].el.endLeft = gAmc[m].el.posLeft;
					gAmc[m].el.endTop  = gAmc[m].el.posTop;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = 0;
					gAmc[m].steps = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("ElasticFromRight" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					gAmc[m] = new animationContext(el, progressElasticFromRight, finishTranslation, animationDuration, 10);
					gAmc[m].el.initLeft = el.offsetLeft+document.body.clientWidth;
					gAmc[m].el.initTop = gAmc[m].el.posTop;
					gAmc[m].el.endLeft = gAmc[m].el.posLeft;
					gAmc[m].el.endTop  = gAmc[m].el.posTop;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = 0;
					gAmc[m].steps = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("ElasticFromBottom" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					gAmc[m] = new animationContext(el, progressElasticFromBottom, finishTranslation, animationDuration, 10);
					gAmc[m].el.initLeft = gAmc[m].el.posLeft;
					gAmc[m].el.initTop = document.body.scrollTop-el.offsetTop-el.offsetHeight;
					gAmc[m].el.endLeft = gAmc[m].el.posLeft;
					gAmc[m].el.endTop  = gAmc[m].el.posTop;
					gAmc[m].finalX = 0;
					gAmc[m].finalY = 0;
					gAmc[m].steps = 0;
					animationPump(m++);
					bStarted = true;
				}
				if ("ZoomIn" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					gAmc[m] = new animationContext(el, progressZoomIn, finishZoom, animationDuration, 10);
					gAmc[m].OldFont = gAmc[m].el.all[0].style.fontSize;
					animationPump(m++);
					bStarted = true;
				}
				if ("ZoomOut" == animationType)
				{
					animationDuration = el.getAttribute("BSSCDuration", false);
					if (null == animationDuration)
						animationDuration = 1000; // default to 1s
					gAmc[m] = new animationContext(el, progressZoomOut, finishZoom, animationDuration, 10);
					gAmc[m].OldFont = gAmc[m].el.all[0].style.fontSize;
					animationPump(m++);
					bStarted = true;
				}
				if ("RevealTrans" == animationType)
				{
					if (gbWindows) {
						Duration = el.getAttribute("BSSCDuration", false);
						if (null == Duration)
							Duration = 1000; // default to 1s
						Transition = el.getAttribute("BSSCTransition", false);
						if (null == Transition)
							Transition = 0;
						el.style.filter = "RevealTrans();";
						el.filters.RevealTrans.Transition = Transition;
						el.filters.RevealTrans.apply();
						el.style.visibility = ""; 
						el.filters.RevealTrans.play(parseInt(Duration)/1000.0);  
						bStarted = true;
					} else {
						el.style.visibility = "";
					}
				}
			}
		}
	}
	return bStarted;
}

function ApplyTextFormatting(divEl, childEl)
{
	childEl.setAttribute("BSSCOriginalStyle", childEl.style);

	// Text Change
	hoverColor = divEl.getAttribute("BSSCHoverColor", false);
	if ("Default" != divEl.getAttribute("BSSCHoverColorName"))
	{
		childEl.setAttribute("BSSCOriginalColor", childEl.style.color);
		childEl.style.color = hoverColor;
	}
	hoverFontName = divEl.getAttribute("BSSCHoverFontName", false);
	if (null != hoverFontName && hoverFontName != "*Default*")
	{
		hoverFontFamily = divEl.getAttribute("BSSCHoverFontFamily", false);
		if (null != hoverFontFamily)
		{
			childEl.setAttribute("BSSCOriginalFontFamily", childEl.style.fontFamily);
			childEl.style.fontFamily = hoverFontFamily;
		}
	}
	hoverFontSize = divEl.getAttribute("BSSCHoverFontSize", false);
	{
		if (null != hoverFontSize && hoverFontSize != "*")
		{
			childEl.setAttribute("BSSCOriginalFontSize", childEl.style.fontSize);
			childEl.style.fontSize = hoverFontSize + "pt";
		}
	}
	hoverFontStyle = divEl.getAttribute("BSSCHoverFontStyle", false);
	if (null != hoverFontStyle && "Regular" != hoverFontStyle)
	{
		if ("Italic" == hoverFontStyle)
		{
			childEl.setAttribute("BSSCOriginalFontStyle", childEl.style.fontStyle);
			childEl.style.fontStyle = "italic";
		}
		else if ("Bold" == hoverFontStyle)
		{
			childEl.setAttribute("BSSCOriginalFontWeight", childEl.style.fontWeight);
			childEl.style.fontWeight = "bold";
		}
		else if ("Bold Italic" == hoverFontStyle)
		{
			childEl.setAttribute("BSSCOriginalFontStyle", childEl.style.fontStyle);
			childEl.style.fontStyle = "italic";
			childEl.setAttribute("BSSCOriginalFontWeight", childEl.style.fontWeight);
			childEl.style.fontWeight = "bold";
		}
	}
	hoverUnderline = divEl.getAttribute("BSSCHoverUnderLine", false);
	if (null != hoverUnderline && hoverUnderline == "TRUE")
	{
		childEl.setAttribute("BSSCOriginalTextDecoration", childEl.style.textDecoration);
		childEl.style.textDecoration = "underline";
	}
}

function RemoveTextFormatting(el)
{
	originalColor = el.getAttribute("BSSCOriginalColor", false);
	if (null != originalColor)
		el.style.color = originalColor;
	originalFontFamily = el.getAttribute("BSSCOriginalFontFamily", false);
	if (null != originalFontFamily)
		el.style.fontFamily = originalFontFamily;
	originalFontSize = el.getAttribute("BSSCOriginalFontSize", false);
	if (null != originalFontSize)
		el.style.fontSize = originalFontSize;
	originalFontStyle = el.getAttribute("BSSCOriginalFontStyle", false);
	if (null != originalFontStyle)
		el.style.fontStyle = originalFontStyle;
	originalFontWeight = el.getAttribute("BSSCOriginalFontWeight", false);
	if (null != originalFontWeight)
		el.style.fontWeight = originalFontWeight;
	originalTextDecoration = el.getAttribute("BSSCOriginalTextDecoration", false);
	if (null != originalTextDecoration)
		el.style.textDecoration = originalTextDecoration;
}

function BSSCOnMouseOver(el)
{
	// Text Formatting
	hoverColor = el.getAttribute("BSSCHoverColor", false);
	if (null != hoverColor)
		for (var index=0; index<el.all.length; index++)
			ApplyTextFormatting(el, el.all[index]);

	// Glow
	glowColor = el.getAttribute("BSSCGlowColor", false);
	if (null != glowColor)
	{
		glowStrength = el.getAttribute("BSSCGlowStrength", false);
		if (null == glowStrength)
			glowStrength = "3";
		glowColorName = el.getAttribute("BSSCGlowColorName");
		if ("Default" == glowColorName)
			el.style.filter = "glow(Strength=" + glowStrength + ", enabled=1)";
		else
			el.style.filter = "glow(Color=#" + glowColor + ", Strength=" + glowStrength + ", enabled=1)";
	}
}

function BSSCOnMouseOut(el)
{
	// Text Formatting
	hoverColor = el.getAttribute("BSSCHoverColor", false);
	if (null != hoverColor)
		for (var index=0; index<el.all.length; index++)
			RemoveTextFormatting(el.all[index]);

	// Glow
	glowColor = el.getAttribute("BSSCGlowColor", false);
	if (null != glowColor)
		el.style.filter="";
}

function doStaticEffects()
{
	divElements = document.all.tags("DIV");
	for (var index = 0; index < divElements.length; index++)
	{
		el = divElements[index];
		
		dropShadowColor = el.getAttribute("BSSCDropShadowColor");
		if (null != dropShadowColor)
		{
			dropShadowXOffset = el.getAttribute("BSSCDropShadowXOffset");
			if (null == dropShadowXOffset)
				dropShadowXOffset = 0;
			dropShadowYOffset = el.getAttribute("BSSCDropShadowYOffset");
			if (null == dropShadowYOffset)
				dropShadowYOffset = 0;
			dropShadowColorName = el.getAttribute("BSSCDropShadowColorName");
			if ("Default" == dropShadowColorName)
				el.style.filter = "DropShadow(OffX=" + dropShadowXOffset + ", OffY=" + dropShadowYOffset + ")";
			else
				el.style.filter = "DropShadow(Color=" + dropShadowColor + ", OffX=" + dropShadowXOffset + ", OffY=" + dropShadowYOffset + ")";
		}
	}
}

function drop( targetId )
{ 
	target = document.all( targetId );
	if (target.style.display == 'none') {
	   target.style.display = "" ;
	} else {
	   target.style.display = "none";
	}
	event.cancelBubble = true;
}

function checkParent(src,dest)
{
	//Search for a specific parent of the current element.
	while(src !=null)
	{
		if(src.tagName == dest)
		{
			return src;
		}
		src = src.parentElement;
	}
	return null;
}

//Generic Display code
function outline2()
{
	//Expand or collapse if a list item is clicked.
	var open = event.srcElement;

	//Verify that the tag which was clicked was either the 
	//trigger tag or nested within a trigger tag.
	var el = checkParent(open,"CITE");
	if(null != el)
	{	
		var incr=0;
		var elmPos = 0;
		var parentSpan;
		var fBreak

		//Get the position of the element which was clicked
		elemPos = window.event.srcElement.sourceIndex;

		//Search for a SPAN tag
		for (parentSpan = window.event.srcElement.parentElement; parentSpan!=null;	parentSpan = parentSpan.parentElement) 
		{
			//test if already at a span tag 
		    if (parentSpan.tagName=="SPAN") {
				incr=1;
				break;
			}
			
			//Test if the tag clicked was in a body tag or in any of the possible kinds of lists
			//we perform this test because nested lists require special handling
			if (parentSpan.tagName=="BODY" || parentSpan.tagName=="UL" || parentSpan.tagName=="OL") 
			{
				//Determine where the span to be expanded is.  
				for (incr=1; (elemPos+incr) < document.all.length; incr++)
				{	
					//verify we are at an expandable Div tag
					if(document.all(elemPos+incr).tagName=="SPAN" && (document.all(elemPos+incr).className=="expanded" || document.all(elemPos+incr).className=="glossexpanded" || document.all(elemPos+incr).className=="glosscollapsed" || document.all(elemPos+incr).className=="collapsed"))
					{
						fBreak=1;
						break;
					}
					else if(document.all(elemPos+incr).tagName=="LI")
					{
						//If the next tag following the list item (li) is another list item(li) return in order to prevent accidentally opening the next span in the list
						return;
					}
				}
			}
			//determine if we need to break out of the while loop (kind of a kludge since theres no goto in javascript)
			if(fBreak==1)
			{
				break;
			}
		}
	}
	else
	{
		return;
	}

	//Now that we've identified the span, expand or collapse it
	if(document.all(elemPos+incr) == null) {	
		return;
	} else if(document.all(elemPos+incr).className=="collapsed") {
		document.all(elemPos+incr).className="expanded";
	} else if(document.all(elemPos+incr).className=="expanded")  {
		document.all(elemPos+incr).className="collapsed";
	} else if(document.all(elemPos+incr).className=="glosscollapsed") {
		document.all(elemPos+incr).className="glossexpanded";
	} else if(document.all(elemPos+incr).className=="glossexpanded") {
		document.all(elemPos+incr).className="glosscollapsed";
	} else	{
		return;
	}
	event.cancelBubble = true;
}


